Skip to content

Conversation

yowl
Copy link
Contributor

@yowl yowl commented Sep 3, 2025

  • Change EMSDK_PATH back to EMSDK
  • abi,h - add some wasm fields and getPassedByRef accessor
  • async.cpp add include for #include "treelifeupdater.h"
  • compiler.h move fgIsThrow to public
  • gentree.cpp add resultReg = REG_LLVM; for the debug dump
  • gentree.h remove one of the asserts in SetLayout with comment
  • importercalls.cpp use the CorType overload in impPopCallArgs
  • lclvars.cpp remove rsCalleeRegArgCount for Wasm
  • llvm.cpp add new helpers, static_assert_no_msg -> static_assert
  • llvmlower.cpp ebdID and compEHID initialisation
  • llvmlssa.cpp lvaLclSize to lvaLclStackHomeSize
  • ssabuilder.cpp RenamePushMemoryDef return early for LIR
  • targetwasm.cpp align m_stackArgSize and set and pass passedByRef, thanks SingleAccretion.
  • targetwasm.h set some values for new macros.
  • nativeaot/CMakelists.txt remove wasm-exceptions
  • Portable/CMakelists.txt add -C to include license text when preprocessing
  • ilc.sln, add ARM64 config to make debugging on Surface laptops easier. Upstream?
  • MetadataManager.Wasm.cs - some ObjectInterner.IsNull removal
  • RyuJitCompilationBuilder.cs - make some fields protected to access from LLVMCodegenCompilationBuilder
  • types.h - include inttypes to avoid redefine error when inttypes.h is included later.

davidwrighton and others added 30 commits August 14, 2025 15:05
…n adding fields/classes via ApplyMetadata (#118608)

This does not eliminate all possible race conditions here, if a type is in progress loading when the metadata is updated, then there is still a race, but this should narrow the possible races in this space. Additionally, this should address the debug asserts which have been hit in this space.

Fixes #115318
This is a narrow change to address a user
reported issue on System.Type and the
common implementation detail type, RuntimeType.

There are other related issues that discuss the underlying
Reflection behavior, see #98533 and #28056.
- Instead of loading the static field type, use metadata directly to pull the needed info if we can't load the target type.
- Add tests covering various scenarios found by customers in the last year or so
- Remove existing scheme which could handle directly self referential statics
- Defer checking RVA static valuetypes for their field type until a later type loader stage
  - Add VMFLAG for HasRVAStaticFields
- Remove VMFLAG for HasPublicFields, this was found to be unused (its a legacy of an old CAS type loader check which no longer exists)

Fixes #104511
This specifically addresses IL3050 warnings (ones generated as part of
AOT-compat). Contributes to dotnet/runtime#75480
…otnet-optimization build 20250813.5 (#118743)

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.25363.1 -> To Version 1.0.0-prerelease.25413.5

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Andy Ayers <[email protected]>
I don't think anything calls these and because these are virtual, they cannot be trimmed.
Handling was missing to mark these as async and to insert async
continuations.

---------

Co-authored-by: Vladimir Sadov <[email protected]>
…eeded and HTTP tests (#118733)

* Remove System.Security.Cryptography.Tests.csproj from Smoke Tests for CoreCLR Android

* Refactoring

* Enable the tests for devices (on emulators, they are still disabled)

* Refatoring - remove from smoke tests for good

* Remove smoke tests that are failing

* Skip test

---------

Co-authored-by: Milos Kotlar <[email protected]>
…6 (#118759)

Updated Dependencies:
Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.CSharp, Microsoft.Net.Compilers.Toolset (Version 5.0.0-2.25413.101 -> 5.0.0-2.25414.103)
Microsoft.CodeAnalysis.NetAnalyzers (Version 10.0.0-preview.25413.101 -> 10.0.0-preview.25414.103)
Microsoft.DotNet.ApiCompat.Task, Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100.Transport (Version 10.0.100-rc.1.25413.101 -> 10.0.100-rc.1.25414.103)
Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Archives, Microsoft.DotNet.Build.Tasks.Feed, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Packaging, Microsoft.DotNet.Build.Tasks.TargetFramework, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.CodeAnalysis, Microsoft.DotNet.GenAPI, Microsoft.DotNet.GenFacades, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.PackageTesting, Microsoft.DotNet.RemoteExecutor, Microsoft.DotNet.SharedFramework.Sdk, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.25413.101 -> 10.0.0-beta.25414.103)
Microsoft.DotNet.Cecil (Version 0.11.5-alpha.25413.101 -> 0.11.5-alpha.25414.103)
Microsoft.DotNet.XUnitAssert, Microsoft.DotNet.XUnitConsoleRunner (Version 2.9.3-beta.25413.101 -> 2.9.3-beta.25414.103)
Microsoft.NET.Sdk.IL, Microsoft.NETCore.App.Ref, Microsoft.NETCore.ILAsm, runtime.native.System.IO.Ports, System.Reflection.Metadata, System.Reflection.MetadataLoadContext, System.Text.Json (Version 10.0.0-rc.1.25413.101 -> 10.0.0-rc.1.25414.103)
NuGet.Frameworks, NuGet.Packaging, NuGet.ProjectModel, NuGet.Versioning (Version 7.0.0-preview.1.41901 -> 7.0.0-preview.1.42003)
System.CommandLine (Version 2.0.0-rc.1.25413.101 -> 2.0.0-rc.1.25414.103)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…729)

This unifies `LogExceptionThrown` with the other eventing that is implemented in the native runtime (threads/threadpool).

Noticed this in dotnet/runtime#107418 (comment) where we run an awful lot of code in situations where event source is not even enabled.
(With `StackTraceSupport=false`, `OptimizationPreference=Size`, `UseSystemResourceKeys=true`)

The thing that makes the difference is that we are no longer boxing enums and we can get rid of the super expensive enum stringification logic.

Not boxing enums also means that #118640 can fully kick in because enums are the last remaining place that looks at custom attributes (looking for `FlagsAttribute`).

Co-authored-by: Jan Kotas <[email protected]>
Issue #108255 was fixed by PR #118594
…(#118499)

* Partially revert "Clean up in Number.Formatting.cs (#110955)"

This reverts commit 4020e05.

* ifdefs

* Update Number.Formatting.cs
_Ux86_64_step is used in libcoreclrpal_dac, but defined in libcoreclrpal

Fixes: #118695
…p" (#118761)

Mono specific changes in #111598 regressed Mono runtime performance significantly. Reverting the changes for now.

Fixes #112763
We guarantee the type can be found but not that it can be passed to e.g. `RuntimeHelpers.GetUninitializedObject`. The `MetadataTypeSymbol` node didn't exist when interop type map was added.
* Fix the formatting of the tensor ToString functions

* Fix the compat suppressions
…` (#118792)

We should check the size of the contract to determine if it can have `external_assembly_probe`. In practice, we probably haven't hit this since `hostpolicy` ships next to `coreclr` - but any sort of patching such that `coreclr` is newer than `hostpolicy` could result in incorrectly determining that `external_assembly_probe` is set.
…lysis (#118769)

A couple times in the past I needed a way to say "if X is not part of the program, eliminate the entire basic block". We can do this for allocated types (this is how branches under `is` checks elimination works), but we can't do this for more general "characteristics".

This introduces a mechanism where AOT compiler and CoreLib (or System.Private.* universe in general) can define whole program tags such as "whole program has X in it" and CoreLib can condition code on the presence of this tag.

This is easier shown than described, so I extracted the first use of this into a separate commit. In this commit, we eliminate code that tries looking for `StackTraceHiddenAttribute` if we know the whole program has no `StackTraceHiddenAttribute` in it. With this code eliminated, #118640 can then eliminate all custom attributes on methods, which in turn plays into #118718 and we can eliminate enum boxing even when StackTraceSupport is not set to false (right now #118718 really needs the StackTraceSupport=false to get rid of boxed enums; we get more boxed enums from method attributes).

We have a new node that represents the characteristic. The node can be dropped into the graph wherever needed. ILScanner then uses this to condition parts of the method body on this characteristic node. We need similar logic in the substitution IL provider because we need to guarantee that RyuJIT is not going to see basic blocks we didn't scan. So we treat it as a substitution during codegen phase too.
Contributing towards [#115479](dotnet/runtime#115479)

Contains implementations for the set of [SVE2 FP APIs](dotnet/runtime#94018 (comment)), aside from `ConvertToSingleOdd` and `ConvertToSingleOddRoundToOdd`. This is due to concerns I have about the API proposal for these intrinsics being incorrect, when I have a resolution to [my comments](dotnet/runtime#94018 (comment)) on this they will be implemented.
@yowl yowl closed this Oct 3, 2025
@yowl yowl reopened this Oct 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.